<?php
	if($this->getUsuario() != null){
		if ($_POST) {
			$strBusca	=	pegaPost('inputBusca') != null ? urlencode(stripslashes(pegaPost('inputBusca'))) : null;
			$tipoBusca	=	pegaPost('radioTipoBuscaSimples');
			if ($tipoBusca != '') {
				$_SESSION['constructore']['strBuscaCabecalho']		=	$strBusca;
				$_SESSION['constructore']['radioTipoBuscaSimples']	=	$tipoBusca;
				redireciona(array('busca', $tipoBusca, 'ordenanome', 'asc', 'pagina1', '?busca=' . $strBusca));
			}
			else {
				adicionaMensagem(texto('MENSAGEM_ERRO_BUSCA_INVALIDA'),'erro');
				redireciona($_SESSION['constructore']['URLOrigem']);
			}
		}
		else {
			if (defined('PARAMETRO_1') && (constant('PARAMETRO_1') == 'usuarios' || constant('PARAMETRO_1') == 'cursos')) {
				//PEGA PARAMETROS DA BUSCA
				
				if (defined('PARAMETRO_3'))
					$ordemAtual	=	constant('PARAMETRO_3');
				else
					$ordemAtual	=	'asc';
					
				if (defined('PARAMETRO_4'))
					$paginaAtual	=	str_replace('pagina', '', constant('PARAMETRO_4'));
				else
					$paginaAtual	=	1;
				
				if (!validaNumero($paginaAtual))
					redireciona(array('404'));
					
				$strNome	=	isset($_GET['busca']) ? urldecode($_GET['busca']) : '';
				
				if (constant('PARAMETRO_1') == 'usuarios') {
					
					if (defined('PARAMETRO_2'))
						$ordenacaoAtual	=	str_replace('ordena', '', constant('PARAMETRO_2'));
					else
						$ordenacaoAtual	=	'nome';
					
					$ordenacaoAtual	=	$ordenacaoAtual	==	'tipocadastro' ? 'tipoCadastro' : $ordenacaoAtual;
					$ordenacaoAtual	=	$ordenacaoAtual	==	'ultimoacesso' ? 'ultimoAcesso' : $ordenacaoAtual;
					
					if (!preg_match('/^(idUsuario|nome|tipoCadastro|instituicao|ultimoAcesso|dataCadastro)$/', $ordenacaoAtual))
						redireciona(array('404'));
					
					$_SESSION['constructore']['strBuscaCabecalho']		=	$strNome;
					$_SESSION['constructore']['radioTipoBuscaSimples']	=	'usuarios';
					$strBusca	=	'?busca=' . htmlentities($strNome);
					
					$mostraApagados	=	'nao';
					
					if ($resultado = Usuario::buscarNome($strNome, $mostraApagados, $paginaAtual, constant('__QTD_ITENS_LISTA__'), $ordenacaoAtual, $ordemAtual)) {
						$listaUsuarios		=	$resultado['listaResultados'];
						$qtdPaginas			=	$resultado['qtdPaginas'];
						$qtdUsuariosTotal	=	$resultado['qtdResultadosTotal'];
						
						$qtdUsuariosPagina	=	sizeof($listaUsuarios);
						
						foreach ($listaUsuarios as $indice => $usuario) {
							if ($usuario['foto'] == '')
								$usuario['foto']	=	'usuariodefault_pequeno.png';
							else
								$usuario['foto']	=	str_replace('original', 'pequeno', $usuario['foto']);
							
							$usuario['dimensoesFoto']	=	getimagesize(constant('__CAMINHO_FOTO_USUARIO__') . $usuario['foto']);
							$usuario['dimensoesFoto']	=	'width="' . $usuario['dimensoesFoto'][0] . '" height="' . $usuario['dimensoesFoto'][1] . '"';
							
							$usuario['foto']			=	constant('__URL_FOTO_USUARIO__') . $usuario['foto'];
							
							$usuario['titleFoto']		=	texto('TITLE_FOTO_USUARIO', array($usuario['nome']));
							$usuario['href']			=	montalink(array('usuario', $usuario['idUsuario']));
							$usuario['ultimoAcesso']	=	getDataHoraFormatada($usuario['ultimoAcesso']);
							$usuario['exibeEmail']		=	true;
							
							$usuario['tipoCadastro']	=	getFuncaoUsuarioExibir($usuario['tipoCadastro']);
							
							$listaUsuarios[$indice]		=	$usuario;
						}
						
						$listaPaginas	=	array();
						for ($i = 1; $i <= $qtdPaginas; $i++) {
							if ($i != $paginaAtual)
								array_push($listaPaginas, array('href' => montaLink(array('busca', 'usuarios', $ordenacaoAtual, $ordemAtual, 'pagina' . $i, $strBusca)), 'pagina' => $i));
							else
								array_push($listaPaginas, array('pagina' => $i));
						}
						
						$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_USUARIOS') . ' - ' . texto('LABEL_BUSCA'))));
						$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('LABEL_BUSCA') . ' > ' . texto('AREA_USUARIOS'));
						
						$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array($qtdUsuariosPagina, $qtdUsuariosTotal)));
						
						$this->getSmarty()->assign('mostraLinkBuscaAvancada', true);
						
						$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
						$this->getSmarty()->assign('ordemAtual', $ordemAtual);
						$this->getSmarty()->assign('qtdPaginas', $qtdPaginas);
						$this->getSmarty()->assign('qtdUsuariosPagina', $qtdUsuariosPagina);
						$this->getSmarty()->assign('listaPaginas', $listaPaginas);
						$this->getSmarty()->assign('listaUsuarios', $listaUsuarios);
						
						$this->getSmarty()->assign('linkBuscaAvancadaUsuarios', montaLink(array('buscaavancada', 'usuarios')));
						
						$this->getSmarty()->assign('LISTA_TITULO_NOME_HREF', montaLink(array('busca', 'usuarios', 'ordenanome', $ordenacaoAtual != 'nome' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_NOME_TITLE', $ordenacaoAtual != 'nome' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_NOME'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_NOME'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_NOME')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_EMAIL_HREF', montaLink(array('busca', 'usuarios', 'ordenaemail', $ordenacaoAtual != 'email' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_EMAIL_TITLE', $ordenacaoAtual != 'email' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_EMAIL'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_EMAIL'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_EMAIL')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_INSTITUICAO_HREF', montaLink(array('busca', 'usuarios', 'ordenainstituicao', $ordenacaoAtual != 'instituicao' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_INSTITUICAO_TITLE', $ordenacaoAtual != 'instituicao' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INSTITUICAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INSTITUICAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_INSTITUICAO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_TIPO_CADASTRO_HREF', montaLink(array('busca', 'usuarios', 'ordenatipocadastro', $ordenacaoAtual != 'tipoCadastro' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_TIPO_CADASTRO_TITLE', $ordenacaoAtual != 'tipocadastro' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_ULTIMO_ACESSO_HREF', montaLink(array('busca', 'usuarios', 'ordenaultimoacesso', $ordenacaoAtual != 'ultimoAcesso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_ULTIMO_ACESSO_TITLE', $ordenacaoAtual != 'tipocadastro' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_ULTIMO_ACESSO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_ULTIMO_ACESSO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_ULTIMO_ACESSO')))));
						
						$this->exibir('listarusuarios');
						unset($_SESSION['constructore']['strBuscaCabecalho']);
						unset($_SESSION['constructore']['radioTipoBuscaSimples']);
					}
					else {
						adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
						redireciona(array($_SESSION['constructore']['URLOrigem']));
					}
				}
				else {
					if (defined('PARAMETRO_2'))
						$ordenacaoAtual	=	str_replace('ordena', '', constant('PARAMETRO_2'));
					else
						$ordenacaoAtual	=	'titulo';
					
					$ordenacaoAtual	=	$ordenacaoAtual	==	'titulo' ? 'nome' : $ordenacaoAtual;
					$ordenacaoAtual	=	$ordenacaoAtual	==	'iniciocurso' ? 'inicioCurso' : $ordenacaoAtual;
					$ordenacaoAtual	=	$ordenacaoAtual	==	'terminocurso' ? 'terminoCurso' : $ordenacaoAtual;
					$ordenacaoAtual	=	$ordenacaoAtual	==	'iniciomatricula' ? 'inicioMatricula' : $ordenacaoAtual;
					$ordenacaoAtual	=	$ordenacaoAtual	==	'terminomatricula' ? 'terminoMatricula' : $ordenacaoAtual;
					
					if (!preg_match('/^(idCurso|nome|inicioCurso|terminoCurso|inicioMatricula|terminoMatricula)$/', $ordenacaoAtual))
						redireciona(array('404'));
					
					$_SESSION['constructore']['strBuscaCabecalho']		=	$strNome;
					$_SESSION['constructore']['radioTipoBuscaSimples']	=	'cursos';
					$strBusca	=	'?busca=' . htmlentities($strNome);
					
					$mostraLiberados	=	'sim';
					$mostraApagados		=	'nao';
					
					if ($resultado = Curso::buscarNome($strNome, $mostraLiberados, $mostraApagados, $paginaAtual, constant('__QTD_ITENS_LISTA__'), $ordenacaoAtual, $ordemAtual)) {
						$listaCursos		=	$resultado['listaResultados'];
						$qtdPaginas			=	$resultado['qtdPaginas'];
						$qtdCursosTotal	=	$resultado['qtdResultadosTotal'];
						
						$qtdCursosPagina	=	sizeof($listaCursos);
						
						foreach ($listaCursos as $indice => $curso) {
							if ($resultadoProfessor = Usuario::getUsuarioPorId($curso['idDono'])) {
								if ($resultadoProfessor['qtdResultadosTotal'] == 1) {
									$curso['dono']		=	nomeSobrenome($resultadoProfessor['listaResultados'][0]['nome']);
									$curso['donoHREF']	=	montaLink(array('usuario', $resultadoProfessor['listaResultados'][0]['idUsuario']));
								}
								else {
									adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
									redireciona($_SESSION['constructore']['URLOrigem']);
								}
							}
							else {
								adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
								redireciona($_SESSION['constructore']['URLOrigem']);
							}
							
							if ($curso['logo'] == '')
								$curso['logo']	=	'cursodefault_pequeno.png';
							else
								$curso['logo']	=	str_replace('original', 'pequeno', $curso['logo']);
							
							$curso['dimensoesLogo']	=	getimagesize(constant('__CAMINHO_LOGO_CURSO__') . $curso['logo']);
							$curso['dimensoesLogo']	=	'width="' . $curso['dimensoesLogo'][0] . '" height="' . $curso['dimensoesLogo'][1] . '"';
							
							$curso['logo']			=	constant('__URL_LOGO_CURSO__') . $curso['logo'];
							
							$curso['titleLogo']		=	texto('TITLE_LOGO_CURSO', array($curso['nome']));
							$curso['href']			=	montalink(array('curso', $curso['urlCurso']));
							$curso['inicioCurso']	=	getDataFormatada($curso['inicioCurso']);
							$curso['terminoCurso']	=	getDataFormatada($curso['terminoCurso']);
							$dataHoje				=	date('Y-m-d');
							
							if (comparaDatasString($curso['inicioMatricula'], $dataHoje) >= 0) {
								//Matricula ja abriu
								if (comparaDatasString($curso['terminoMatricula'], $dataHoje) > 0) {
									//Matricula ja abriu e ja fechou
									$curso['matricula']	=	texto('DADOS_MATRICULA_FECHADA');
								}
								else {
									//Matricula ja abriu e nao fechou, esta aberta
									$curso['matricula']	=	texto('DADOS_MATRICULA_ABERTA_ATE', array(getDataFormatada($curso['terminoMatricula'])));
								}
							}
							else {
								//Matricula ainda nao abriu
								$curso['matricula']	=	texto('DADOS_MATRICULA_ABRE_EM', array(getDataFormatada($curso['inicioMatricula'])));
							}
							
							$listaCursos[$indice]		=	$curso;
						}
						
						$listaPaginas	=	array();
						for ($i = 1; $i <= $qtdPaginas; $i++) {
							if ($i != $paginaAtual)
								array_push($listaPaginas, array('href' => montaLink(array('busca', 'cursos', $ordenacaoAtual, $ordemAtual, 'pagina' . $i, $strBusca)), 'pagina' => $i));
							else
								array_push($listaPaginas, array('pagina' => $i));
						}
						
						$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_CURSOS') . ' - ' . texto('LABEL_BUSCA'))));
						$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('LABEL_BUSCA') . ' > ' . texto('AREA_CURSOS'));
						
						$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array($qtdCursosPagina, $qtdCursosTotal)));
						
						$this->getSmarty()->assign('mostraLinkBuscaAvancada', true);
						$this->getSmarty()->assign('mostraCriador', true);
						$this->getSmarty()->assign('mostraMatricula', true);
						$this->getSmarty()->assign('mostraPaginacao', true);
						
						$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
						$this->getSmarty()->assign('ordemAtual', $ordemAtual);
						$this->getSmarty()->assign('qtdPaginas', $qtdPaginas);
						$this->getSmarty()->assign('qtdUsuariosPagina', $qtdCursosPagina);
						$this->getSmarty()->assign('listaPaginas', $listaPaginas);
						$this->getSmarty()->assign('listaCursos', $listaCursos);
						
						$this->getSmarty()->assign('linkBuscaAvancadaUsuarios', montaLink(array('buscaavancada', 'usuarios')));
						
						$this->getSmarty()->assign('LISTA_TITULO_TITULO_CURSO_HREF', montaLink(array('busca', 'cursos', 'ordenanome', $ordenacaoAtual != 'nome' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_TITULO_CURSO_TITLE', $ordenacaoAtual != 'nome' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TITULO_DO_CURSO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TITULO_DO_CURSO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TITULO_DO_CURSO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_MATRICULA_HREF', montaLink(array('busca', 'cursos', 'terminomatricula', $ordenacaoAtual != 'terminoMatricula' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_MATRICULA_TITLE', $ordenacaoAtual != 'terminoMatricula' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_PERIODO_DE_MATRICULA'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_PERIODO_DE_MATRICULA'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_PERIODO_DE_MATRICULA')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_DATA_INICIO_HREF', montaLink(array('busca', 'cursos', 'ordenainiciocurso', $ordenacaoAtual != 'inicioCurso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_DATA_INICIO_TITLE', $ordenacaoAtual != 'inicioCurso' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INICIO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_INICIO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_INICIO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_DATA_TERMINO_HREF', montaLink(array('busca', 'cursos', 'ordenaterminocurso', $ordenacaoAtual != 'terminoCurso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_DATA_TERMINO_TITLE', $ordenacaoAtual != 'terminoCurso' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TERMINO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TERMINO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TERMINO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_TIPO_CADASTRO_HREF', montaLink(array('busca', 'usuarios', 'ordenatipocadastro', $ordenacaoAtual != 'tipoCadastro' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_TIPO_CADASTRO_TITLE', $ordenacaoAtual != 'tipocadastro' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_FINALIDADE_DE_USO_EXIBICAO')))));
						
						$this->getSmarty()->assign('LISTA_TITULO_ULTIMO_ACESSO_HREF', montaLink(array('busca', 'usuarios', 'ordenaultimoacesso', $ordenacaoAtual != 'ultimoAcesso' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'), 'pagina' . $paginaAtual, $strBusca)));
						$this->getSmarty()->assign('LISTA_TITULO_ULTIMO_ACESSO_TITLE', $ordenacaoAtual != 'tipocadastro' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_ULTIMO_ACESSO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_ULTIMO_ACESSO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_ULTIMO_ACESSO')))));
						
						$this->exibir('listarcursos');
						unset($_SESSION['constructore']['strBuscaCabecalho']);
						unset($_SESSION['constructore']['radioTipoBuscaSimples']);
					}
					else {
						adicionaMensagem(texto('MENSAGEM_ERRO_INTERNO'), 'erro');
						redireciona(array($_SESSION['constructore']['URLOrigem']));
					}
				}
			}
			else {
				adicionaMensagem(texto('MENSAGEM_ERRO_ACAO_INVALIDA'),'erro');
				redireciona($_SESSION['constructore']['URLOrigem']);
			}
		}
	}
	else {
		adicionaMensagem(texto('MENSAGEM_ERRO_USUARIO_NAO_LOGADO'),'erro');
		redireciona(array('principal'));
	}
?>